'''
文件说明：
保存ＡＰＰ的配置信息

'''

# 用类控制扩展
import logging
import redis


class Config(object):
    SECRET_KEY = "@#$%^&*&%$$$%$^"

    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/project_flask"  # 连接数据库
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # 关闭数据库追踪

    # 配置redis
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379

    # 配置Session的存储位置（和其他参数）

    SESSION_TYPE = "redis"  # 储存类型
    SESSION_USE_SIGNER = True  # 签名存储
    SESSION_KEY_PREFIX = 'session:'  # 键的前缀
    SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT)  # redis储存位置
    PERMANENT_SESSION_LIFETIME = 3600 * 24 * 2  # 两天有效


# 项目的多个环境类,继承父类Config
# ：开发环境Development 生产（上线）环境Production
class DevelopmentConfig(Config):
    DEBUG = True  # 测试
    LOG_LV = logging.DEBUG


class ProductionConfig(Config):
    DEBUG = False  # 测试
    LOG_LV = logging.ERROR


# 用字典设置用户键入文本和环境的映关系
config_dict = {
    "develop": DevelopmentConfig,
    "product": ProductionConfig
}
